package com.hfb.mashibing.alip8.mq.rabbit.topic;

import com.hfb.mashibing.alip8.mq.rabbit.util.ConnectionUtil;
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

/**
 * 在通配符模式中，
 * 生产者
 */
public class TopicProducer {
    // 交换机名称
    public static final String TOPIC_EXCHANGE = "topic_exchange";
    // 队列1名称
    public static final String TOPIC_QUEUE_1 = "topic_queue_1";
    // 队列2名称
    public static final String TOPIC_QUEUE_2 = "topic_queue_2";


    public static void main(String[] args) throws Exception {
        // 1、创建连接工厂
        // 2、创建连接（工具类）
        Connection connection = ConnectionUtil.getConnection();
        // 3、创建频道
        Channel channel = connection.createChannel();
        // 声明交换机
        channel.exchangeDeclare(TOPIC_EXCHANGE, BuiltinExchangeType.TOPIC);

        // 5、发送消息
        String msg = "Hello,你好，RabbitMq。topic模式:新增";
        //参数1-交换机，空串代表使用默认路由器
        //参数2-路由key，在简单模式中，可以使用队列名称
        //参数3-消息其他属性
        //参数4-消息内容
        channel.basicPublish(TOPIC_EXCHANGE,"item.insert",null,msg.getBytes());
        System.err.println(String.format("[%s]已发送！",msg));


        msg = "Hello,你好，RabbitMq。topic模式：修改";
        //参数1-交换机，空串代表使用默认路由器
        //参数2-路由key，在简单模式中，可以使用队列名称
        //参数3-消息其他属性
        //参数4-消息内容
        channel.basicPublish(TOPIC_EXCHANGE,"item.update",null,msg.getBytes());
        System.err.println(String.format("[%s]已发送！",msg));


        msg = "Hello,你好，RabbitMq。topic模式：删除";
        //参数1-交换机，空串代表使用默认路由器
        //参数2-路由key，在简单模式中，可以使用队列名称
        //参数3-消息其他属性
        //参数4-消息内容
        channel.basicPublish(TOPIC_EXCHANGE,"item.delete",null,msg.getBytes());
        System.err.println(String.format("[%s]已发送！",msg));





    }

}
